Conventional display devices (e.g., Cathode Ray Tube (CRT), Liquid Crystal Displays (LCD), Light Emitting Diode (LED), Organic LED (OLED), Active-Matrix OLED (AMOLED), etc.) operate at fixed refresh rates such as 60 Hz, 85 Hz, or 120 Hz. However, a graphics processing unit (GPU) may generate frames of pixel data at a variable rendering rate that is asynchronous with the fixed refresh rate of the display device.
Newer display devices may be configured to operate synchronously with the GPU utilizing a dynamic refresh frequency. For example, some monitors may be compatible with NVIDIA's G-SYNC™ technology that enables the display device to synchronize the refresh of pixel elements for displaying a frame with the variable rendering rate of the GPU. The GPU is configured to transmit frames of pixel data to the display device via the video interface as the frames are rendered, and the display device is configured to refresh the pixels of the display device in response to receiving the frames of pixel data rather than at a fixed frequency refresh rate. In other words, the refresh rate of the display device is not fixed at a particular frequency, but instead adjusts dynamically to the rate image data is received from the GPU.
As long as the GPU renders frames of image data at a reasonably fast rendering rate, the types of image artifacts associated with conventional systems may be reduced. However, in some cases, the GPU may have trouble rendering particular frames in a reasonable amount of time due to the complexity of a scene. For example, a particular frame of pixel data may take, e.g., 100 ms to be rendered, which corresponds to a dynamic refresh frequency of 10 Hz for that particular frame. The effective refresh rate of the monitor when there are large delays between successive frames may cause issues.
For example, most image display technologies (e.g., LCD panels) have a lower and upper bound refresh frequency at which the display can reproduce an image with maximum quality. When the displays were driven at a fixed frequency refresh rate, this operational restriction was easy to meet because the fixed refresh frequency could be selected within the lower and upper bounds of the display. However, when using a variable refresh rate technology, such as NVIDIA's G-SYNC™ technology, the GPU may require a variable and unpredictable amount of time to generate the next image data for display. The amount of time required to generate the next frame of image data for display can be larger than the amount of time available while staying above the minimum refresh frequency requirements of the display.
When the refresh rate of the video signal that is arriving at the display driving hardware is lower than this minimum refresh rate, the display driving hardware needs to refresh the panel by repainting the previous image to stay above the minimum refresh frequency. FIG. 1A illustrates an example of image repetition on a variable refresh display device to avoid flicker, in accordance with the prior art. A set of timing diagrams 100 in FIG. 1A includes an input signal that includes encoded data for five images (e.g., Image 1, Image 2, Image 3, Image 4, and Image 5) received by a variable refresh display device. An output signal includes data sent to an LCD panel of the variable refresh display device. Images 1, 2, and 3 are received at a frequency that is above the minimum refresh frequency of the variable refresh display device. Therefore, Images 1, 2, and 3 are output to the LCD panel when those images are received. However, Image 4 is not received soon enough to satisfy the minimum refresh frequency of the variable refresh display device. Therefore, Image 3 is redisplayed. Then, Images 4 and 5 are output to the LCD panel when those images are received by the variable refresh display device.
If the new image (e.g., Image 4) arrives while the previous image (e.g., Image 3) is being redisplayed, a temporal collision occurs: the incoming image needs to be displayed as soon as possible for the best possible visual representation and to avoid stutter, but the previous image is in the process of being displayed. For a traditional LCD panel, display of the previous image needs to be completed before the new image can be displayed.
FIG. 1B illustrates an example of image repetition on a variable refresh display device with a temporal collision between two images, in accordance with the prior art. An output signal includes data sent to an LCD panel of the variable refresh display device. Images 1, 2, and 3 are received at a frequency that is above the minimum refresh frequency of the variable refresh display device. Therefore, Images 1, 2, and 3 are output to the LCD panel when those images are received. However, Image 4 is not received soon enough to satisfy the minimum refresh frequency of the variable refresh display device. Therefore, Image 3 is redisplayed. Image 4 is received while Image 3 is being redisplayed—causing a temporal collision between the repeated Image 3 and new Image 4. Display of Image 4 is delayed until the display of repeated Image 3 is completed. Then, Image 5 is output to the LCD panel when it is received by the variable refresh display device.
On an LCD panel, the value of a component of a pixel (for convenience, ‘pixel’) is determined by applying a voltage to the pixel. The absolute value of this voltage determines the color. However, applying a value of the same polarity will result in the build-up of a residual charge, also called DC imbalance. When too large, this DC imbalance can result in visual artifacts such a flicker. The build-up of DC imbalance can be prevented by alternating a positive or a negative polarity for each frame in a sequence, thus keeping the residual charge close to zero.
Conventionally, LCD panels already have a fixed pattern by which neighboring pixels may have the opposite polarity from each other. The fixed pattern defined for an LCD panel, is often called the spatial inversion pattern. Importantly, in the context for LCD panels, ‘polarity’ is a relative term: some pixels may have + (positive) polarity and others may have ‘−’ (negative) polarity, and, for a different frame, the pixels are all switched to the opposite polarity. In other words, the spatial inversion pattern is defined for displaying each frame and the polarity for neighboring pixels or even for the color components within pixels may be different. However, the absolute value (e.g., positive or negative) of the polarity does not cause the DC imbalance. The DC imbalance is caused by a duration imbalance between opposing polarities for the same pixel (or same pixel color component). Ideally, to ensure DC balance is maintained, the amount of time a pixel is displayed using a negative polarity should equal the amount of time a pixel is displayed using a positive polarity. When the frame rate is fixed, DC balance is maintained by switching the polarity for all of the pixels in the entire display screen each time an image is displayed. A first pixel that starts with a positive polarity according to the spatial inversion pattern switches back and forth between positive and negative polarity for equal durations. A second pixel that is adjacent to the first pixel and starts with a negative polarity according to the spatial inversion pattern also switches back and forth between positive and negative polarity for equal durations, so DC balance is maintained for both the first and second pixels.
However, for a variable refresh rate display, just alternating the polarity for each frame is often not sufficient to keep the residual charge limited. The frame rate is not constant and there may be frame rate patterns that still result in a DC imbalance. Thus, there is a need for addressing these issues and/or other issues associated with the prior art.